home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
comm2
/
termsorc.lha
/
Extras
/
Source
/
gtlayout-source.lha
/
LTP_ImageClass.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-09-29
|
3KB
|
146 lines
/* GadTools layout toolkit
**
** Copyright © 1993-1995 by Olaf `Olsen' Barthel
** Freely distributable.
*/
#include "gtlayout_global.h"
ULONG __regargs
LTP_ImageClassDraw(struct Image *image,struct impDraw *drawMsg,ImageInfo *imageInfo)
{
LTP_DrawBox(drawMsg -> imp_RPort,drawMsg -> imp_DrInfo,image -> LeftEdge + drawMsg -> imp_Offset . X,image -> TopEdge + drawMsg -> imp_Offset . Y,image -> Width,image -> Height,drawMsg -> imp_State == IDS_SELECTED,drawMsg -> imp_State == IDS_DISABLED,imageInfo);
return(TRUE);
}
/*****************************************************************************/
ULONG __regargs
LTP_ImageClassErase(struct Image *image,struct impErase *eraseMsg)
{
LONG left;
LONG top;
left = eraseMsg -> imp_Offset . X + image -> LeftEdge;
top = eraseMsg -> imp_Offset . Y + image -> TopEdge;
EraseRect(eraseMsg -> imp_RPort,left,top,left + image -> Width - 1,top + image -> Height - 1);
return(TRUE);
}
/*****************************************************************************/
ULONG __regargs
LTP_ImageClassNew(struct IClass *class,Object *object,struct opSet *SetMethod)
{
struct TagItem *Item;
if(Item = FindTagItem(IIA_ImageType,SetMethod -> ops_AttrList))
{
struct Image *NewImage;
if(NewImage = (struct Image *)DoSuperMethodA(class,object,(Msg)SetMethod))
{
struct ImageInfo *MoreInfo = INST_DATA(class,NewImage);
struct TagItem *List = SetMethod -> ops_AttrList;
memset(MoreInfo,0,sizeof(struct ImageInfo));
MoreInfo -> ImageType = Item -> ti_Data;
while(Item = NextTagItem(&List))
{
switch(Item -> ti_Tag)
{
case IIA_GlyphWidth:
MoreInfo -> GlyphWidth = Item -> ti_Data;
break;
case IIA_GlyphHeight:
MoreInfo -> GlyphHeight = Item -> ti_Data;
break;
case IIA_Lines:
MoreInfo -> Lines = (STRPTR *)Item -> ti_Data;
break;
case IIA_LineCount:
MoreInfo -> LineCount = Item -> ti_Data;
break;
case IIA_KeyStroke:
MoreInfo -> KeyStroke = (STRPTR)Item -> ti_Data;
break;
case IIA_Emboss:
MoreInfo -> Emboss = Item -> ti_Data;
break;
case IIA_Label:
MoreInfo -> Label = (STRPTR)Item -> ti_Data;
break;
}
}
return((ULONG)NewImage);
}
}
return(NULL);
}
ULONG __regargs
LTP_ImageClassGet(Class *class,Object *object,struct opGet *GetMsg)
{
if(GetMsg -> opg_AttrID == IA_SupportsDisable)
{
*GetMsg -> opg_Storage = TRUE;
return(TRUE);
}
else
return(DoSuperMethodA(class,object,GetMsg));
}
/*****************************************************************************/
ULONG __saveds __asm
LTP_ImageDispatch(register __a0 struct IClass *class,register __a2 Object *object,register __a1 Msg msg)
{
switch(msg -> MethodID)
{
case IM_ERASE:
return(LTP_ImageClassErase((struct Image *)object,(struct impErase *)msg));
case IM_DRAW:
return(LTP_ImageClassDraw((struct Image *)object,(struct impDraw *)msg,(ImageInfo *)INST_DATA(class,object)));
case OM_NEW:
return(LTP_ImageClassNew(class,object,(struct opSet *)msg));
case OM_GET:
return(LTP_ImageClassGet(class,object,(struct opGet *)msg));
default:
return(DoSuperMethodA(class,object,msg));
}
}